#include<bits/stdc++.h>
#define endl '\n'
#define debug(x) cerr<<#x<<':'<<x<<endl
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
using namespace std;
const int N=3e3+5;
int n,m;
int dp[N][N];
int ans[N];
int sum[N];
int tmp[2],lst[2][N];
int s[N],t[N];
string S,T;
signed main(){
	freopen("seq.in","r",stdin);
	freopen("seq.out","w",stdout);
    cin>>S>>T;
    n=S.size(),m=T.size();
    S=' '+S,T=' '+T;
    for(int i=1;i<=n;i++){
        s[i]=S[i]-'0';
        t[i]=T[i]-'0';
        lst[0][i]=tmp[0];
        lst[1][i]=tmp[1];
        tmp[s[i]]=i;
    }
    for(int i=0;i<=n;i++) dp[0][i]=1;
    for(int i=0;i<=n;i++) sum[i]=sum[i-1]+dp[0][i];
    for(int i=1;i<=m;i++){
        for(int j=1;j<=n;j++){
            if(T[i]!=S[j]) continue;
            if(sum[j-1]-sum[lst[s[j-1]^1][j-1]-1]>0) dp[i][j]=1;
        }
        for(int j=1;j<=n;j++) sum[j]=sum[j-1]+dp[i][j];
    }
    ans[m+1]=N;
    for(int i=m;i>=1;i--){
        for(int j=n;j>=1;j--){
            if(dp[i][j]&&j<ans[i+1]){
                ans[i]=j;
                break;
            }
        }
    }
    for(int i=1;i<=m;i++) if(!ans[i]) return cout<<"NO",0;
    cout<<"YES"<<endl;
    for(int i=1;i<=m;i++) cout<<ans[i]<<' ';
    return 0;
}